1. Technical Field
The present invention relates generally to digital computer systems, and more specifically to signalling between processes running on computer systems attached to a network.
2. Background Art
As small computers continue to become more powerful, and their costs decrease, networks of computers continue to be more common. These networks can be connected using a variety of network architectures, and typically consist of a moderate to large number of nodes. Each node can be a stand alone computer system, or a network shared resource such as a file server or printer.
Distributed processing over a network has a number of advantages over the use of a centralized mainframe which contributes to continuing growth in this area. A well designed network can expand as desired, adding work stations, terminals, and shared network resources as needed. A network is somewhat less sensitive to hardware failures, in that a hardware failure generally does not render the entire network useless, while preventative maintenance or a hardware failure in a centralized mainframe usually makes all resources completely unavailable. Work stations and dedicated servers connected to a network can be optimized for use in performing one or a limited number of functions, which improves efficiency.
An example of a type of system which can be beneficially attached to a network is a database server. Remote database accesses are made to the database server node from other nodes attached to the network. The database server can be optimized for efficient database access, while remaining available to a large number of users.
With distributed systems, user control of the machine actually performing a user's work is lessened. In fact, a user often does not know, or care, exactly which machine is performing work for that user. System and network loads, hardware failures, and other problems may cause long delays for a user without that user being aware of the source of the problem. In the case of remote database accesses, a user can also enter complex commands, perhaps accidentally, which create long delays before results are obtained.
If a long delay in receiving results from a remote network node is unexpected or undesired, it may be necessary for the user to interrupt processing on the remote node. In the case of remote shared database systems, as well as many other types of applications, the remote interrupt must be "graceful." In other words, the remote application must be able to handle the remote interrupt request in a predictable, completely determined manner, and leave all files on the remote node in a known, safe state. It is very important that shared databases handle interrupt requests gracefully, as corruption of data can result if they do not.
Therefore, if the user wishes to interrupt a request to a remote database and perform other work on his local node, he cannot simply cancel the application running on the remote node. Also, simply severing the communications link between the user's node and a remote database server is not a graceful way of interrupting a remote database request. It is also often not desired, as the user may want to make additional requests after the currently pending request is cancelled.
It would therefore desirable to provide a system and method for gracefully interrupting a process on a remote node of a computer network.